package com.pearsoned.apollo.actionscripts
{
import flash.events.NetStatusEvent;
import flash.system.System;
import flash.net.URLLoader;
import flash.net.URLRequest;
import mx.managers.CursorManager;
import flash.events.HTTPStatusEvent;
import flash.events.IOErrorEvent;
import mx.core.Application;
public class ConnectionStatus
{
[Embed(source="../../../../assets/images/smile.png")]
[Bindable] public var imgConnected:Class;
[Embed(source="../../../../assets/images/frown.png")]
[Bindable] public var imgDisconnected:Class;
public function checkConnection():void {
CursorManager.setBusyCursor();
var headRequest:URLRequest = new URLRequest();
headRequest.method = "HEAD";
headRequest.url = "http://labs.insideflex.com";
var response:URLLoader = new URLLoader(headRequest);
response.addEventListener(HTTPStatusEvent.HTTP_STATUS, statusChanged);
response.addEventListener(IOErrorEvent.IO_ERROR, onError);
}
public function onConnectionChange(networkChangeEvent:Event):void {
checkConnection();
}
private function statusChanged(status:HTTPStatusEvent):void {
CursorManager.removeBusyCursor();
if (status.status == 0) {
mx.core.Application.application.imgStatus.source = imgDisconnected;
mx.core.Application.application.imgStatus.toolTip = "Offline and not connected to the Internet...";
mx.core.Application.application.btnPlayAgain.enabled = false;
mx.core.Application.application.blnConnected = false;
mx.core.Application.application.blnPlayEnabled = false;
mx.core.Application.application.btnViewSource.enabled = false;
} else {
mx.core.Application.application.imgStatus.source = imgConnected;
mx.core.Application.application.imgStatus.toolTip = "Online and connected to the Internet...";
if (mx.core.Application.application.blnPlayEnabled) {
mx.core.Application.application.btnPlayAgain.enabled = true;
} else {
mx.core.Application.application.btnPlayAgain.enabled = false;
}
mx.core.Application.application.blnConnected = true;
mx.core.Application.application.blnPlayEnabled = true;
mx.core.Application.application.btnViewSource.enabled = true;
}
}
private function onError(error:IOErrorEvent):void {
CursorManager.removeBusyCursor();
mx.core.Application.application.imgStatus.source = imgDisconnected;
mx.core.Application.application.imgStatus.toolTip = "Offline and not connected to the Internet...";
mx.core.Application.application.btnPlayAgain.enabled = false;
mx.core.Application.application.blnConnected = false;
mx.core.Application.application.blnPlayEnabled = false;
}
}
}